namespace ext
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// Just as {@link Ext.Element} wraps around a native DOM node, Ext.EventObject
	/// wraps the browser&apos;s native event-object normalizing cross-browser differences,
	/// such as which mouse button is clicked, keys pressed, mechanisms to stop
	/// event-propagation along with a method to prevent default actions from taking place.
	/// For example:  
	/// function handleClick(e, t){ // e is not a standard event object, it is a Ext.EventObject
	/// e.preventDefault();
	/// var target = e.getTarget(); // same as t (the target HTMLElement)
	/// ...
	/// }
	/// var myDiv = {@link Ext#get Ext.get}(&quot;myDiv&quot;); // get reference to an {@link Ext.Element}
	/// myDiv.on( // &apos;on&apos; is shorthand for addListener
	/// &quot;click&quot;, // perform an action on click of myDiv
	/// handleClick // reference to the action handler
	/// );
	/// // other methods to do the same:
	/// Ext.EventManager.on(&quot;myDiv&quot;, &apos;click&apos;, handleClick);
	/// Ext.EventManager.addListener(&quot;myDiv&quot;, &apos;click&apos;, handleClick);
	/// </summary>
	/// <htmlSummary>
	/// Just as {@link Ext.Element} wraps around a native DOM node, Ext.EventObject
	/// wraps the browser&apos;s native event-object normalizing cross-browser differences,
	/// such as which mouse button is clicked, keys pressed, mechanisms to stop
	/// event-propagation along with a method to prevent default actions from taking place.
	/// &lt;p&gt;For example:&lt;/p&gt;
	/// &lt;pre&gt;&lt;code&gt;
	/// function handleClick(e, t){ // e is not a standard event object, it is a Ext.EventObject
	/// e.preventDefault();
	/// var target = e.getTarget(); // same as t (the target HTMLElement)
	/// ...
	/// }
	/// var myDiv = {@link Ext#get Ext.get}(&quot;myDiv&quot;); // get reference to an {@link Ext.Element}
	/// myDiv.on( // &apos;on&apos; is shorthand for addListener
	/// &quot;click&quot;, // perform an action on click of myDiv
	/// handleClick // reference to the action handler
	/// );
	/// // other methods to do the same:
	/// Ext.EventManager.on(&quot;myDiv&quot;, &apos;click&apos;, handleClick);
	/// Ext.EventManager.addListener(&quot;myDiv&quot;, &apos;click&apos;, handleClick);
	/// &lt;/code&gt;&lt;/pre&gt;
	/// </htmlSummary>
	/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
	/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
	[ScriptName("EventObject")]
	[ScriptNamespace("Ext")]
	[Imported()]
	public partial class EventObject
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		internal EventObject()
		{
		}
		#endregion
		
		#region Methods
		/// <summary>Stop the event (preventDefault and stopPropagation)</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		[ScriptName("stopEvent")]
		public void StopEvent()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Prevents the browsers default handling of the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		[ScriptName("preventDefault")]
		public void PreventDefault()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Cancels bubbling of the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		[ScriptName("stopPropagation")]
		public void StopPropagation()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the character code for the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		[ScriptName("getCharCode")]
		public System.Number GetCharCode()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns a normalized keyCode for the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		/// <returns>The key code</returns>
		[ScriptName("getKey")]
		public System.Number GetKey()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the x coordinate of the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		[ScriptName("getPageX")]
		public System.Number GetPageX()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the y coordinate of the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		[ScriptName("getPageY")]
		public System.Number GetPageY()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the page coordinates of the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		/// <returns>The xy values like [x, y]</returns>
		[ScriptName("getXY")]
		public System.Array GetXY()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the related target.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		[ScriptName("getRelatedTarget")]
		public System.Html.Element GetRelatedTarget()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Normalizes mouse wheel delta across browsers</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		/// <returns>The delta</returns>
		[ScriptName("getWheelDelta")]
		public System.Number GetWheelDelta()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the target for the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		/// <param name="selector">A simple selector to filter the target or look for an ancestor of the target</param>
		/// <param name="maxDepth">
		/// The max depth to
		/// search as a number or element (defaults to 10 || document.body)
		/// </param>
		/// <param name="returnEl">True to return a Ext.Element object instead of DOM node</param>
		[ScriptName("getTarget")]
		public System.Html.Element GetTarget(string selector, System.Number maxDepth, bool returnEl)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the target for the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		/// <param name="selector">A simple selector to filter the target or look for an ancestor of the target</param>
		/// <param name="maxDepth">
		/// The max depth to
		/// search as a number or element (defaults to 10 || document.body)
		/// </param>
		/// <param name="returnEl">True to return a Ext.Element object instead of DOM node</param>
		[ScriptName("getTarget")]
		public System.Html.Element GetTarget(string selector, object maxDepth, bool returnEl)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the target for the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		/// <param name="selector">A simple selector to filter the target or look for an ancestor of the target</param>
		/// <param name="maxDepth">
		/// The max depth to
		/// search as a number or element (defaults to 10 || document.body)
		/// </param>
		[ScriptName("getTarget")]
		public System.Html.Element GetTarget(string selector, System.Number maxDepth)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the target for the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		/// <param name="selector">A simple selector to filter the target or look for an ancestor of the target</param>
		/// <param name="maxDepth">
		/// The max depth to
		/// search as a number or element (defaults to 10 || document.body)
		/// </param>
		[ScriptName("getTarget")]
		public System.Html.Element GetTarget(string selector, object maxDepth)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the target for the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		/// <param name="selector">A simple selector to filter the target or look for an ancestor of the target</param>
		[ScriptName("getTarget")]
		public System.Html.Element GetTarget(string selector)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the target for the event.</summary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		[ScriptName("getTarget")]
		public System.Html.Element GetTarget()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Returns true if the target of this event is a child of el. Unless the allowEl parameter is set, it will return false if if the target is el.
		/// Example usage: 
		/// // Handle click on any child of an element
		/// Ext.getBody().on(&apos;click&apos;, function(e){
		/// if(e.within(&apos;some-el&apos;)){
		/// alert(&apos;Clicked on a child of some-el!&apos;);
		/// }
		/// });
		///
		/// // Handle click directly on an element, ignoring clicks on child nodes
		/// Ext.getBody().on(&apos;click&apos;, function(e,t){
		/// if((t.id == &apos;some-el&apos;) &amp;&amp; !e.within(t, true)){
		/// alert(&apos;Clicked directly on some-el!&apos;);
		/// }
		/// });
		/// </summary>
		/// <htmlSummary>
		/// Returns true if the target of this event is a child of el. Unless the allowEl parameter is set, it will return false if if the target is el.
		/// Example usage:&lt;pre&gt;&lt;code&gt;
		/// // Handle click on any child of an element
		/// Ext.getBody().on(&apos;click&apos;, function(e){
		/// if(e.within(&apos;some-el&apos;)){
		/// alert(&apos;Clicked on a child of some-el!&apos;);
		/// }
		/// });
		///
		/// // Handle click directly on an element, ignoring clicks on child nodes
		/// Ext.getBody().on(&apos;click&apos;, function(e,t){
		/// if((t.id == &apos;some-el&apos;) &amp;&amp; !e.within(t, true)){
		/// alert(&apos;Clicked directly on some-el!&apos;);
		/// }
		/// });
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\ext-core\src\core\EventManager.js</definedin>
		/// <param name="el">The id, DOM element or Ext.Element to check</param>
		/// <param name="related">true to test if the related target is within el instead of the target</param>
		/// <param name="allowEl">{optional} true to also check if the passed element is the target or related target</param>
		[ScriptName("within")]
		public bool Within(object el, bool related, bool allowEl)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
